package com.suke.czx.modules.wxadmin.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.suke.czx.aop.Cacheable;
import com.suke.czx.aop.Cacheable.KeyMode;
import com.suke.czx.common.utils.RedisUtils;
import com.suke.czx.modules.wxadmin.dao.DkUserDao;
import com.suke.czx.modules.wxadmin.entity.DkUserEntity;
import com.suke.czx.modules.wxadmin.service.DkUserService;



@Service("dkUserService")
public class DkUserServiceImpl implements DkUserService {
	@Autowired
	private DkUserDao dkUserDao;
	
	@Autowired
	private RedisUtils redisUtils;
	
	@Override
	public DkUserEntity queryObject(String openid,boolean iscach){
		if(iscach){
			DkUserEntity dkUser = redisUtils.getObject("memuser_"+openid);
			if(null!=dkUser){
				return dkUser;
			}
		}
		return dkUserDao.queryObject(openid);
	}
	
	@Override
	public List<DkUserEntity> queryList(Map<String, Object> map){
		return dkUserDao.queryList(map);
	}
	
	@Override
	public int queryTotal(Map<String, Object> map){
		return dkUserDao.queryTotal(map);
	}
	
	@Override
	public void save(DkUserEntity dkUser){
		dkUser.setMhcode(Math.abs(dkUser.getOpenid().hashCode()%30));
		dkUserDao.save(dkUser);
	}
	
	@Override
	public void update(DkUserEntity dkUser){
		dkUserDao.update(dkUser);
	}
	
	@Override
	public void delete(String openid){
		dkUserDao.delete(openid);
	}
	
	@Override
	public void deleteBatch(String[] openids){
		dkUserDao.deleteBatch(openids);
	}

	@Override
	public List<DkUserEntity> queryInvUser(String dis) {
		return dkUserDao.queryInvUser(dis);
	}

	@Override
	public int addCoin(String openid) {
		return dkUserDao.addCoin(openid);
	}

	@Override
	public int cutCoin(String openid) {
		return dkUserDao.cutCoin(openid);
	}

	@Override
	public List<DkUserEntity> tagtoall() {
		return dkUserDao.tagtoall();
	}

	@Override
	public List<DkUserEntity> tagtoallnopay() {
		return dkUserDao.tagtoallnopay();
	}

	@Override
	public int addCoin5(String openid) {
		return dkUserDao.addCoin5(openid);
	}
}
